-
Notifications
You must be signed in to change notification settings - Fork 790
[NFC][SYCL][Graph] Add successors
/predecessors
views + cleanup
#19332
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
+78
−80
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Part of refactoring to get rid of most (all?) `std::weak_ptr<node_impl>` and some of `std::shared_ptr<node_impl>` started in intel#19295. Use `nodes_range` from that PR to implement `successors`/`predecessors` views and update read-only accesses to the successors/predecessors to go through them. I'm not changing the data members `MSuccessors`/`MPredecessors` yet because it would affect unittests. I'd prefer to refactor most of the code in future PRs before making that change and updating unittests in one go. I'm updating some APIs to accept `node_impl &` instead of `std::shared_ptr` where the change is mostly localized to the callers iterating over successors/predecessors and doesn't spoil into other code too much. For those that weren't updated here we (temporarily) use `shared_from_this()` but I expect to eliminate those unnecessary copies when those interfaces will be updated in the subsequent PRs.
aelovikov-intel
added a commit
to aelovikov-intel/llvm
that referenced
this pull request
Jul 7, 2025
Continuation of the refactoring in intel#19295 intel#19332
aelovikov-intel
added a commit
to aelovikov-intel/llvm
that referenced
this pull request
Jul 7, 2025
Continuation of the refactoring in intel#19295 intel#19332
aelovikov-intel
added a commit
to aelovikov-intel/llvm
that referenced
this pull request
Jul 7, 2025
Continuation of the refactoring in intel#19295 intel#19332
aelovikov-intel
added a commit
to aelovikov-intel/llvm
that referenced
this pull request
Jul 8, 2025
... and update the code surrounding their uses in the same spirit. Continuation of intel#19295 intel#19332 intel#19334
@intel/sycl-graphs-reviewers , @Bensuo , would you be able to look at this before end of day your timezone? I have one uploaded PR and several I'm working on based on this one and I'd really like to get this merged soon. |
EwanC
approved these changes
Jul 8, 2025
Thanks! |
aelovikov-intel
added a commit
to aelovikov-intel/llvm
that referenced
this pull request
Jul 8, 2025
... and update the code surrounding their uses in the same spirit. Continuation of intel#19295 intel#19332 intel#19334
aelovikov-intel
added a commit
to aelovikov-intel/llvm
that referenced
this pull request
Jul 8, 2025
... and update the code surrounding their uses in the same spirit. Continuation of intel#19295 intel#19332 intel#19334
aelovikov-intel
added a commit
to aelovikov-intel/llvm
that referenced
this pull request
Jul 8, 2025
... and update the code surrounding their uses in the same spirit. Continuation of intel#19295 intel#19332 intel#19334
aelovikov-intel
added a commit
to aelovikov-intel/llvm
that referenced
this pull request
Jul 8, 2025
... and update the code surrounding their uses in the same spirit. Continuation of intel#19295 intel#19332 intel#19334
aelovikov-intel
added a commit
to aelovikov-intel/llvm
that referenced
this pull request
Jul 8, 2025
... and update the code surrounding their uses in the same spirit. Continuation of intel#19295 intel#19332 intel#19334
aelovikov-intel
added a commit
to aelovikov-intel/llvm
that referenced
this pull request
Jul 8, 2025
Part of the refactoring to eliminate `std::weak_ptr<node_impl>` and reduce usage of `std::shared_ptr<node_impl>` by preferring raw ptr/ref. Previous PRs in the series: intel#19295 intel#19332 intel#19334 intel#19350 * Accept `Deps` as `nodes_range` in `graph_impl::add` * Return `node_impl &` from `graph_impl::add` * Add `node` support in `nodes_range` and use that together with modified `graph_impl::add` when created new `node_impl`s based on `std::vector<node> Deps` to avoid creation of temporary `DepImpls` storage. * Also updated `registerSuccessor/registerPredecessor` and `addEventForNode/addDepsToNode` to accept raw `node_impl &` as the changes above resulted in having raw reference at the call sites.
aelovikov-intel
added a commit
to aelovikov-intel/llvm
that referenced
this pull request
Jul 8, 2025
Part of the refactoring to eliminate `std::weak_ptr<node_impl>` and reduce usage of `std::shared_ptr<node_impl>` by preferring raw ptr/ref. Previous PRs in the series: intel#19295 intel#19332 intel#19334 intel#19350 * Accept `Deps` as `nodes_range` in `graph_impl::add` * Return `node_impl &` from `graph_impl::add` * Add `node` support in `nodes_range` and use that together with modified `graph_impl::add` when created new `node_impl`s based on `std::vector<node> Deps` to avoid creation of temporary `DepImpls` storage. * Also updated `registerSuccessor/registerPredecessor` and `addEventForNode/addDepsToNode` to accept raw `node_impl &` as the changes above resulted in having raw reference at the call sites.
aelovikov-intel
added a commit
to aelovikov-intel/llvm
that referenced
this pull request
Jul 8, 2025
Part of the refactoring to eliminate `std::weak_ptr<node_impl>` and reduce usage of `std::shared_ptr<node_impl>` by preferring raw ptr/ref. Previous PRs in the series: intel#19295 intel#19332 intel#19334 intel#19350 * Accept `Deps` as `nodes_range` in `graph_impl::add` * Return `node_impl &` from `graph_impl::add` * Add `node` support in `nodes_range` and use that together with modified `graph_impl::add` when created new `node_impl`s based on `std::vector<node> Deps` to avoid creation of temporary `DepImpls` storage. * Also updated `registerSuccessor/registerPredecessor` and `addEventForNode/addDepsToNode` to accept raw `node_impl &` as the changes above resulted in having raw reference at the call sites.
aelovikov-intel
added a commit
to aelovikov-intel/llvm
that referenced
this pull request
Jul 8, 2025
Part of the refactoring to eliminate `std::weak_ptr<node_impl>` and reduce usage of `std::shared_ptr<node_impl>` by preferring raw ptr/ref. Previous PRs in the series: intel#19295 intel#19332 intel#19334 intel#19350 * Accept `Deps` as `nodes_range` in `graph_impl::add` * Return `node_impl &` from `graph_impl::add` * Add `node` support in `nodes_range` and use that together with modified `graph_impl::add` when created new `node_impl`s based on `std::vector<node> Deps` to avoid creation of temporary `DepImpls` storage. * Also updated `registerSuccessor/registerPredecessor` and `addEventForNode/addDepsToNode` to accept raw `node_impl &` as the changes above resulted in having raw reference at the call sites.
aelovikov-intel
added a commit
to aelovikov-intel/llvm
that referenced
this pull request
Jul 8, 2025
aelovikov-intel
added a commit
to aelovikov-intel/llvm
that referenced
this pull request
Jul 8, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Part of refactoring to get rid of most (all?)
std::weak_ptr<node_impl>
and some ofstd::shared_ptr<node_impl>
started in #19295. Usenodes_range
from that PR to implementsuccessors
/predecessors
views and update read-only accesses to the successors/predecessors to go through them.I'm not changing the data members
MSuccessors
/MPredecessors
yet because it would affect unittests. I'd prefer to refactor most of the code in future PRs before making that change and updating unittests in one go.I'm updating some APIs to accept
node_impl &
instead ofstd::shared_ptr
where the change is mostly localized to the callers iterating over successors/predecessors and doesn't spoil into other code too much. For those that weren't updated here we (temporarily) useshared_from_this()
but I expect to eliminate those unnecessary copies when those interfaces will be updated in the subsequent PRs.